SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TCMOVI_BANC_Q05]                                            
/*-------------------------------------------------------*/                                            
/*---Empresa               OFISIS S.A.                --*/                                            
/*---Cliente               CELIMA                     --*/                                            
/*---Sistema               Tesoreria                  --*/                                            
/*---M¢dulo                Empresa                    --*/                                            
/*---Programa              FLUJO DE CAJA SEMANAL PROYECTADO     --*/                                            
/*---Script                SP_TCMOVI_BANC_Q03.sql     --*/                                            
/*---Nombre SP             SP_TCMOVI_BANC_Q03         --*/                                            
/*---Desarrollado por      Reynaldo Menacho Luyo      --*/                                            
/*---Fecha Creaci¢n        25/09/2001                 --*/                                            
/*---Base Datos            SQL SERVER        --*/                                            
/*---Versi¢n               2000                       --*/                                            
/*---Invoca a SP                                      --*/                                            
/*-------------------------------------------------------*/                                            
                                            
/*-------------------------------------------------------*/                                            
/*---Modificado 1 por           --*/                                            
/*---Fecha Modificaci¢n         --*/                                             
/*---Detalle Modificaci¢n       --*/                                            
/*-------------------------------------------------------*/                                            
                                            
/*-------------------------------------------------------*/                                            
/*---Drop Proc SP_TCMOVI_BANC_Q03                      --*/                                            
/*---Grant all on SP_TCMOVI_BANC_Q03 to public         --*/                                             
/*---SP_TCMOVI_BANC_Q03 '01', 'DOL', 10, 2001, 11, 2001  --*/                                            
/*-------------------------------------------------------*/                                            
                                            
--EXEC UL_TCMOVI_BANC_Q05 '01', 'WHERE 1 = 1', '', 'U', 'SOL', '2007/01/01', '2007/06/23'                       
         
@ISCO_EMPR Varchar(2),                                          
@ISCA_WHER_0001 Varchar(256),                                            
@ISCA_WHER_0002 Varchar(256),                                       
@ISTI_PRES TD_VC_001,                                           
@ISCO_MONE TD_VC_003,                                            
@IDFE_OPER_INIC TD_DT_001,                                            
@IDFE_OPER_FINA TD_DT_001                                  
/*,                                            
@INNU_MESE_FINA TD_IN_001,                                            
@INNU_ANIO_FINA TD_IN_001  */                                          
As                                            
CREATE TABLE #TWFLUJ_CAJA_SEMA_Q05_1                                            
 ( CO_EMPR      varchar(3) NULL,                                            
   CO_ARUB varchar(3) NULL ,                              
   DE_ARUB varchar(100) NULL ,                                            
   CO_RUBR varchar(3) NULL ,                            
   DE_RUBR varchar(100) NULL ,                                         
   CO_SUBR varchar(3) NULL ,                          
   DE_SUBR varchar(100) NULL ,                                           
   IM_SE01 numeric(16,4) DEFAULT 0,                           
   IM_SE02 numeric(16,4) DEFAULT 0,                   
   IM_SE03 numeric(16,4) DEFAULT 0,                                            
   IM_SE04 numeric(16,4) DEFAULT 0,                                            
   IM_SE05 numeric(16,4) DEFAULT 0,                                            
   IM_SE06 numeric(16,4) DEFAULT 0,                                            
   IM_SE07 numeric(16,4) DEFAULT 0,                                            
   IM_SE08 numeric(16,4) DEFAULT 0,                                            
   IM_SE09 numeric(16,4) DEFAULT 0,                                            
   IM_SE10 numeric(16,4) DEFAULT 0,                           
   IM_SE11 numeric(16,4) DEFAULT 0,                                        
   IM_SE12 numeric(16,4) DEFAULT 0,                                            
   IM_SE13 numeric(16,4) DEFAULT 0,                                            
   IM_SE14 numeric(16,4) DEFAULT 0,                                            
   IM_SE15 numeric(16,4) DEFAULT 0,                                            
   IM_SE16 numeric(16,4) DEFAULT 0,                                            
   IM_SE17 numeric(16,4) DEFAULT 0,                                            
   IM_SE18 numeric(16,4) DEFAULT 0,                                               
   IM_SE19 numeric(16,4) DEFAULT 0,                                            
   IM_SE20 numeric(16,4) DEFAULT 0,                        
   IM_SE21 numeric(16,4) DEFAULT 0,                                            
   IM_SE22 numeric(16,4) DEFAULT 0,                                            
   IM_SE23 numeric(16,4) DEFAULT 0,                                            
   IM_SE24 numeric(16,4) DEFAULT 0,                                            
   IM_SE25 numeric(16,4) DEFAULT 0,                                            
   IM_SE26 numeric(16,4) DEFAULT 0,                                            
   IM_SE27 numeric(16,4) DEFAULT 0,                                            
   IM_SE28 numeric(16,4) DEFAULT 0,                                            
   IM_SE29 numeric(16,4) DEFAULT 0,                                            
   IM_SE30 numeric(16,4) DEFAULT 0,                           
   IM_SE31 numeric(16,4) DEFAULT 0,                                            
   IM_SE32 numeric(16,4) DEFAULT 0,                                            
   IM_SE33 numeric(16,4) DEFAULT 0,                                            
   IM_SE34 numeric(16,4) DEFAULT 0,                                            
   IM_SE35 numeric(16,4) DEFAULT 0,                                            
   IM_SE36 numeric(16,4) DEFAULT 0,                                            
   IM_SE37 numeric(16,4) DEFAULT 0,                                            
   IM_SE38 numeric(16,4) DEFAULT 0,                                               
   IM_SE39 numeric(16,4) DEFAULT 0,                                            
   IM_SE40 numeric(16,4) DEFAULT 0,                        
   IM_SE41 numeric(16,4) DEFAULT 0,                                            
   IM_SE42 numeric(16,4) DEFAULT 0,                                            
   IM_SE43 numeric(16,4) DEFAULT 0,                                            
   IM_SE44 numeric(16,4) DEFAULT 0,                                            
   IM_SE45 numeric(16,4) DEFAULT 0,                                            
   IM_SE46 numeric(16,4) DEFAULT 0,                                            
   IM_SE47 numeric(16,4) DEFAULT 0,                                            
   IM_SE48 numeric(16,4) DEFAULT 0,                                            
   IM_SE49 numeric(16,4) DEFAULT 0,                                            
   IM_SE50 numeric(16,4) DEFAULT 0,                           
   IM_SE51 numeric(16,4) DEFAULT 0,                                            
   IM_SE52 numeric(16,4) DEFAULT 0,                                           
   FA_TIPO_0001 numeric(9,4) DEFAULT 0,                           
   FA_TIPO_0002 numeric(9,4) DEFAULT 0,                                    
 FA_TIPO_0003 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0004 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0005 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0006 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0007 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0008 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0009 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0010 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0011 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0012 numeric(9,4) DEFAULT 0,                          
   FA_TIPO_0013 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0014 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0015 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0016 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0017 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0018 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0019 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0020 numeric(9,4) DEFAULT 0,                          
   FA_TIPO_0021 numeric(9,4) DEFAULT 0,                                 
   FA_TIPO_0022 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0023 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0024 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0025 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0026 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0027 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0028 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0029 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0030 numeric(9,4) DEFAULT 0,                                    
  FA_TIPO_0031 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0032 numeric(9,4) DEFAULT 0,                          
   FA_TIPO_0033 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0034 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0035 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0036 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0037 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0038 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0039 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0040 numeric(9,4) DEFAULT 0,                       
   FA_TIPO_0041 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0042 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0043 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0044 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0045 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0046 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0047 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0048 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0049 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0050 numeric(9,4) DEFAULT 0,                                    
   FA_TIPO_0051 numeric(9,4) DEFAULT 0,  
   FA_TIPO_0052 numeric(9,4) DEFAULT 0,                                                                                
   NU_MESE varchar(2) NULL,                                          
   CO_BANC varchar(3) NULL ,                                            
   NU_CNTA_BANC varchar(20) NULL ,                                            
   DE_CNTA_BANC varchar(100) NULL ,                                            
   TI_DETA_EMPR  varchar(1) NULL ,                                          
   TI_DETA_BANC  varchar(1) NULL,                               
CO_SUBR_CALC varchar(3) NULL,                                        
ST_CALC_IMPO varchar(1) NULL ,                                        
TI_CALC_IMPO varchar(1) NULL,                        
ST_DIGI VARCHAR(1) NULL ,                        
FA_TIPO_CAMB numeric(9,4) DEFAULT 0,                      
 IM_SALD_INIC numeric(16,4) DEFAULT 0)                                       
                                       
Create Table #TWFLUJ_CAJA_SALD_INIC(                             
    CO_EMPR CHAR(02) NULL,                             
    IM_SALD_INIC Numeric(16,4) NULL)                        
                                        
                         
Create Table #TWSABA_REPO(                             
    CO_EMPR CHAR(02) NULL,                             
    CO_BANC VARCHAR(03) NULL,                            
    NU_CNTA_BANC VARCHAR(20) NULL,                            
    AA_BNCO VARCHAR(04) NULL,                            
    MM_BNCO VARCHAR(02) NULL,                            
    IM_SALD_INIC Numeric(16,4) NULL)                             
                            
Create Table #TWSABA_REPO_AUXI(                             
CO_EMPR VARCHAR(02) NULL,                            
CO_BANC VARCHAR(03) NULL,                            
NU_CNTA_BANC VARCHAR(20) NULL,                            
IM_SALD_INIC Numeric(16,4) NULL)                         
                                           
DECLARE                                 
                                            
@VNNU_MESE  TD_IN_001,                                            
@VNNU_ANIO  TD_IN_001,                                            
@VSNU_MESE  TD_VC_002,                                            
@VSNU_ANIO  VARCHAR(4),                                            
@VNNU_CONT_SEMA TD_IN_001,                                            
@VSDE_SELE VARCHAR(6000),                                            
@VSCO_EMPR VARCHAR (50),                                            
@VSDE_CAMP VARCHAR(7) ,                                        
@VSCO_MONE_NACI TD_VC_003,                                        
@VSCO_MONE_EXTR TD_VC_003,                                      
@VNNU_FACT  NUMERIC(16,4),                                
@VNNU_SEMA_ACTU TD_IN_001,                                 
@VSFE_OPER_INIC TD_VC_020,                                  
@VSFE_OPER_FINA TD_VC_020,                                  
@VSFE_INIC_SEMA TD_VC_020,                  @VSFE_FINA_SEMA TD_VC_020,                                
@VNNU_SEMA_INIC TD_IN_001,                                  
@VNNU_SEMA_FINA TD_IN_001,                        
@VDFE_FINA_SEMA TD_DT_001 ,                        
@VNNU_SEMA_PROY  TD_IN_001,                        
@VSDE_VALO VARCHAR(12),                        
@VSDE_CAMP_FACT VARCHAR (12),                      
@VNNU_PARC_SEMA TD_IN_001,                       
@VNNU_SEMA_NUEV TD_IN_001,                      
@VSDE_CAMP_0001 VARCHAR(10) ,                        
@VSDE_CAMP_0002 VARCHAR(10) ,                        
@VSDE_CAMP_0003 VARCHAR(10) ,                        
@VSDE_CAMP_0004 VARCHAR(10) ,                        
@VSDE_CAMP_0005 VARCHAR(10) ,                        
@VSDE_CAMP_0006 VARCHAR(10) ,                        
@VSDE_CAMP_0007 VARCHAR(10) ,                        
@VSDE_CAMP_0008 VARCHAR(10) ,             
@VSDE_CAMP_0009 VARCHAR(10) ,                        
@VSDE_CAMP_0010 VARCHAR(10) ,                        
@VSDE_CAMP_0011 VARCHAR(10) ,                        
@VSDE_CAMP_0012 VARCHAR(10) ,                        
@VSDE_CAMP_0013 VARCHAR(10) ,                        
@VSDE_CAMP_0014 VARCHAR(10) ,                        
@VSDE_CAMP_0015 VARCHAR(10) ,                        
@VSDE_CAMP_0016 VARCHAR(10) ,                        
@VSDE_CAMP_0017 VARCHAR(10) ,                        
@VSDE_CAMP_0018 VARCHAR(10) ,                        
@VSDE_CAMP_0019 VARCHAR(10) ,                        
@VSDE_CAMP_0020 VARCHAR(10),                      
@VNIM_SALD_FLUJ  numeric(16,4),                        
@VNNU_CONT_SALD TD_IN_001,        
@VDFE_INIC_NUEV   TD_DT_001                                        
                 
                                      
-- PRESENTACION EN UNIDADES O MILES                                        
IF @ISTI_PRES = 'U'                                        
 SELECT @VNNU_FACT = 1                                        
IF @ISTI_PRES = 'M'                                        
 SELECT @VNNU_FACT = 0.001                                        
                                        
Select @VSCO_MONE_NACI = CO_MONE_DEFA, @VSCO_MONE_EXTR = CO_MONE_EXTR                                            
From TMPARA_TESO                                                
Where CO_EMPR = @ISCO_EMPR                                                
                                
SELECT @VSFE_OPER_INIC = CONVERT(VARCHAR(10), @IDFE_OPER_INIC, 103)                                 
SELECT @VSFE_OPER_FINA = CONVERT(VARCHAR(10), @IDFE_OPER_FINA, 103)                                 
SELECT @VNNU_ANIO = YEAR(@IDFE_OPER_INIC)                                
                                
                                
                                            
SELECT @VNNU_SEMA_INIC = NU_SEMA                                
FROM TTSEMA_FLUJ                                
WHERE CO_EMPR = @ISCO_EMPR                                
AND NU_ANIO = YEAR(@IDFE_OPER_INIC)                                
AND FE_INIC_SEMA < = Convert(Datetime, @VSFE_OPER_INIC, 103)                                  
AND FE_FINA_SEMA > = Convert(Datetime, @VSFE_OPER_INIC, 103)                                 
                                
                                
                                
--SELECT *FROM TTSEMA_FLUJ                                
                                
SELECT @VNNU_SEMA_FINA = NU_SEMA                                
FROM TTSEMA_FLUJ                                
WHERE CO_EMPR = @ISCO_EMPR                                
AND NU_ANIO = YEAR(@IDFE_OPER_FINA)                                
AND FE_INIC_SEMA < = Convert(Datetime, @VSFE_OPER_FINA, 103)                                  
AND FE_FINA_SEMA > = Convert(Datetime, @VSFE_OPER_FINA, 103)                                 
                                 
                                           
----   SETEO FECHA INICIAL Y FECHA FINAL INGRESADA ---------                                            
-- @VNNU_MESE = @INNU_MESE_INIC, @VNNU_ANIO = @INNU_ANIO_INIC,                                 
SELECT  @VNNU_CONT_SEMA = 1 , @VNNU_SEMA_ACTU = @VNNU_SEMA_INIC                                           
                                
                                
--  <= Convert(Datetime, '" + @VSFE_CANC + "', 103)                                 
                                
                                            
SELECT @VNNU_SEMA_PROY = @VNNU_SEMA_ACTU                                             
SELECT @VSDE_CAMP = 'IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_CONT_SEMA))))) + 
RTRIM(LTRIM(STR(@VNNU_CONT_SEMA)))                                            
SELECT @VSDE_VALO = 'IM_CALC_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_PROY))))) 
+RTRIM(LTRIM(STR(@VNNU_SEMA_PROY)))                                  
Select @VSDE_CAMP_FACT = 'FA_TIPO_' + REPLICATE('0', 4-LEN(RTRIM(LTRIM(STR(@VNNU_CONT_SEMA))))) 
+RTRIM(LTRIM(STR(@VNNU_CONT_SEMA)))                                               
                                            
                                            
--- LOOP PARA LLENAR LA TABLA TEMPORAL SEMANA POR SEMANA, DESDE LA SEMANA 1 A LA SEMANA 52 -------------------                
                            
WHILE (@VNNU_CONT_SEMA <= (@VNNU_SEMA_FINA - @VNNU_SEMA_INIC + 1)   AND   @VNNU_CONT_SEMA <= 52)                              
      
BEGIN                                            
                                 
SELECT @VSFE_INIC_SEMA = Convert(Datetime, FE_INIC_SEMA, 103), @VSFE_FINA_SEMA = Convert(Datetime, FE_FINA_SEMA, 103),        
                
@VSNU_ANIO = YEAR(FE_INIC_SEMA), @VSNU_MESE = REPLICATE('0', 2-LEN(RTRIM(LTRIM(MONTH(FE_INIC_SEMA))))) + 
RTRIM(LTRIM(MONTH(FE_INIC_SEMA)))                                
FROM TTSEMA_FLUJ               
WHERE CO_EMPR = @ISCO_EMPR                                
AND NU_ANIO = @VNNU_ANIO                                
AND NU_SEMA = @VNNU_SEMA_ACTU                              
                        
                                      
                        
/******PROYECCION DIGITADA ******/                        
                        
EXECUTE('                                  
   INSERT INTO #TWFLUJ_CAJA_SEMA_Q05_1                                     
   (        CO_EMPR, CO_ARUB, DE_ARUB, CO_RUBR, DE_RUBR, CO_SUBR, DE_SUBR, ST_DIGI,  ' + @VSDE_CAMP + ' , TI_DETA_EMPR, 
TI_DETA_BANC)                             
   Select T1.CO_EMPR,  T1.CO_ARUB, T1.DE_ARUB, T2.CO_RUBR, T2.DE_RUBR, T3.CO_SUBR, DE_SUBR,"D",' + @VSDE_VALO + '  , "1", 
"2"                              
   From TTARUB_FINA T1, TTRUBR_FINA T2, TTSUBR_FINA T3, TDFLUJ_PROY_SEMA T4                                
   Where T1.CO_EMPR = "' + @ISCO_EMPR + '"                                  
    And T1.ST_REPO = "S"                                  
    And T1.CO_EMPR = T2.CO_EMPR                                  
    And T1.CO_ARUB = T2.CO_ARUB                                    
    And T2.CO_EMPR = T3.CO_EMPR                                  
    And T2.CO_ARUB = T3.CO_ARUB                                  
    And T2.CO_RUBR = T3.CO_RUBR                                    
    And T3.CO_EMPR = T4.CO_EMPR                                  
    And T4.NU_ANIO = CONVERT(INT, "' + @VSNU_ANIO + '")                                     
    And T3.CO_ARUB = T4.CO_ARUB                                  
    And T3.CO_RUBR = T4.CO_RUBR                                  
    And T3.CO_SUBR = T4.CO_CLSU                  
    ORDER BY T1.CO_EMPR, T1.NU_ORDE, T2.NU_ORDE, T3.NU_ORDE                           
   ')                        
                        
                        
                        
   EXECUTE('                                  
UPDATE #TWFLUJ_CAJA_SEMA_Q05_1                                     
SET  ' + @VSDE_CAMP_FACT + ' = ISNULL( (Select FA_CAMB_CMPR From TCFACT_PRME Where TCFACT_PRME.CO_EMPR =  "'  + @ISCO_EMPR 
+ '" And  TCFACT_PRME.CO_MONE =  "'+ @VSCO_MONE_EXTR + '" And TCFACT_PRME.NU_ANNO =  CONVERT(INT, ' + @VSNU_ANIO + ') 
And TCFACT_PRME.NU_MESE = CONVERT(INT, ' + @VSNU_MESE + ' ) )  , 0)' )                                
                        
/*******FIN DE PROYECCION DIGITADA ********/                        
                        
                        
/****HALLANDO SALDO DE BANCOS*************/                        
              
SELECT @VDFE_FINA_SEMA = Convert(Datetime, @VSFE_FINA_SEMA,103)                        
                        
EXECUTE SP_TWSABA_FLUJ_Q01 @ISCO_EMPR, @ISCO_MONE, @VDFE_FINA_SEMA                        
                        
EXECUTE ('  
INSERT INTO #TWFLUJ_CAJA_SEMA_Q05_1             
(CO_EMPR, CO_BANC, NU_CNTA_BANC, DE_CNTA_BANC, ' + @VSDE_CAMP + ', TI_DETA_EMPR, TI_DETA_BANC)                              
              
select T2.CO_EMPR, T2.CO_BANC, T2.NU_CNTA_BANC, T2.DE_CNTA_BANC,                                  
T4.IM_SALD_INIC, "1", "1"                                  
 from  TTBANC_FINA T1, TMCNTA_BANC T2, #TWSABA_REPO T4                                  
 Where T2.CO_EMPR =   ' + @ISCO_EMPR + '                                  
  and t1.co_banc = t2.co_banc                                
  and t1.st_banc_empr = "S"                                        
  And T2.CO_EMPR = T4.CO_EMPR                                  
  And T2.CO_BANC = T4.CO_BANC                                  
  And T2.NU_CNTA_BANC = T4.NU_CNTA_BANC                                               
 ORDER BY T2.CO_EMPR, T2.CO_BANC, T2.NU_CNTA_BANC                          
')                                          
                                          
                            
DELETE FROM #TWSABA_REPO_AUXI                            
DELETE FROM #TWSABA_REPO                                          
                                        
                        
                                             
  SELECT @VNNU_CONT_SEMA = @VNNU_CONT_SEMA + 1,                         
  @VNNU_SEMA_ACTU = @VNNU_SEMA_ACTU + 1 ,                        
  @VNNU_SEMA_PROY = @VNNU_SEMA_PROY + 1                         
                                             
                                          
  SELECT @VSDE_CAMP = 'IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_CONT_SEMA))))) + 
RTRIM(LTRIM(STR(@VNNU_CONT_SEMA)))                                            
  SELECT @VSDE_VALO = 'IM_CALC_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_PROY))))) 
+RTRIM(LTRIM(STR(@VNNU_SEMA_PROY)))                                  
  Select @VSDE_CAMP_FACT = 'FA_TIPO_' + REPLICATE('0', 4-LEN(RTRIM(LTRIM(STR(@VNNU_CONT_SEMA))))) 
+RTRIM(LTRIM(STR(@VNNU_CONT_SEMA)))                                  
                                        
END                                            
                                        
                        
UPDATE #TWFLUJ_CAJA_SEMA_Q05_1                               Set   IM_SE01 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, 
@ISCO_MONE, T1.IM_SE01, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, T1.FA_TIPO_0001, 1))*(Case When T1.CO_ARUB = '001' Then 1 Else - 
1 End),          
      IM_SE02 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE02, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0002, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE03 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE03, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0003, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE04 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE04, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0004, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE05 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE05, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0005, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE06 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE06, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0006, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE07 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE07, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0007, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE08 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE08, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0008, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE09 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE09, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0009, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE10 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE10, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0010, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE11 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE11, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0011, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                 
      IM_SE12 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE12, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0012, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                          
      IM_SE13 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE13, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0013, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE14 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE14, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0014, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                 
      IM_SE15 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE15, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0015, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE16 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE16, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0016, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE17 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE17, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0017, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE18 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE18, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0018, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE19 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE19, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0019, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                         
      IM_SE20 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE20, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0020, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                          
      IM_SE21 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE21, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0021, 1))*(Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE22 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE22, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0022, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE23 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE23, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0023, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE24 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE24, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0024, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE25 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE25, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0025, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE26 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE26, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0026, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),       
      IM_SE27 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE27, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0027, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE28 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE28, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0028, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE29 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE29, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0029, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE30 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE30, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0030, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE31 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE31, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0031, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE32 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE32, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0032, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                          
      IM_SE33 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE33, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0033, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE34 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE34, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0034, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE35 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE35, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0035, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE36 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE36, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0036, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE37 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE37, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0037, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE38 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE38, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0038, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE39 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE39, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0039, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE40 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE40, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0040, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                         
      IM_SE41 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE41, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0041, 1))*(Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE42 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE42, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0042, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),            
      IM_SE43 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE43, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0043, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE44 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE44, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0044, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE45 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE45, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0045, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE46 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE46, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0046, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                               
      IM_SE47 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE47, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0047, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE48 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE48, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0048, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE49 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE49, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0049, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE50 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE50, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0050, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                               
      IM_SE51 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE51, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0051, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                  
      IM_SE52 = (DBO.FN_TCFACT_CAMB_Q03 (T2.CO_MONE, @ISCO_MONE, T1.IM_SE52, T3.CO_MONE_DEFA, T3.CO_MONE_EXTR, 
T1.FA_TIPO_0052, 1))* (Case When T1.CO_ARUB = '001' Then 1 Else - 1 End),                                                   
        
      ST_DIGI = 'D'                                  
FROM  #TWFLUJ_CAJA_SEMA_Q05_1  T1, TDFLUJ_PROY_SEMA T2, TMPARA_TESO T3                                  
Where T2.CO_EMPR = T1.CO_EMPR                                  
And   T2.CO_ARUB = T1.CO_ARUB                                  
And   T2.CO_RUBR = T1.CO_RUBR                                  
And   T2.CO_CLSU = T1.CO_SUBR                                  
And   T3.CO_EMPR = T1.CO_EMPR                        
AND  T1.ST_DIGI = 'D'                          
                        
/*SALDOS INICIALES*/                       
SELECT  @VNNU_CONT_SALD = 1                       
SELECT @VSDE_CAMP = 'IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_CONT_SALD))))) + 
RTRIM(LTRIM(STR(@VNNU_CONT_SALD)))                                            
                                            
                                            
--- LOOP PARA LLENAR LA TABLA TEMPORAL SEMANA POR SEMANA, DESDE LA SEMANA 1 A LA SEMANA 52 -------------------                
                            
WHILE (@VNNU_CONT_SALD < (@VNNU_CONT_SEMA - 20))              
BEGIN                                            
                                  
EXECUTE('                                            
  INSERT INTO #TWFLUJ_CAJA_SALD_INIC                                    
  (CO_EMPR, IM_SALD_INIC)                                            
SELECT CO_EMPR, SUM(ISNULL(' + @VSDE_CAMP + ',0))                               
 FROM #TWFLUJ_CAJA_SEMA_Q05_1                        
 WHERE ISNULL(CO_BANC, "") = ""                      
 AND ISNULL(NU_CNTA_BANC, "") = ""                            
 GROUP BY CO_EMPR                      
  ')                      
                        
                                             
  SELECT @VNNU_CONT_SALD = @VNNU_CONT_SALD + 1                         
                                            
                                          
  SELECT @VSDE_CAMP = 'IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_CONT_SALD))))) + 
RTRIM(LTRIM(STR(@VNNU_CONT_SALD)))                                            
                                          
END                            
    
                      
--SELECT *FROM #TWFLUJ_CAJA_SALD_INIC           
        
        
 SELECT @VDFE_INIC_NUEV = FE_INIC_SEMA                      
 FROM TTSEMA_FLUJ                      
 WHERE CO_EMPR = @ISCO_EMPR                      
 AND NU_ANIO = YEAR(@IDFE_OPER_INIC)                      
 AND NU_SEMA = @VNNU_SEMA_INIC                    
                                      
SELECT @VNIM_SALD_FLUJ = ISNULL((SELECT SUM (ISNULL(IM_SALD_INIC, 0)) FROM #TWFLUJ_CAJA_SALD_INIC GROUP BY CO_EMPR),0) +      
                 
 (Select Isnull(Sum( Isnull(T1.IM_MOVI, 0)), 0)              
   From (Select Round(Dbo.FN_TCFACT_CAMB_Q02(TMCNTA_BANC.CO_MONE, @ISCO_MONE, TCMOVI_BANC.FE_OPER,              
    TCMOVI_BANC.IM_MOVI * ( PATINDEX(TCMOVI_BANC.TI_MOVI_BANC, 'I') - PATINDEX(TCMOVI_BANC.TI_MOVI_BANC, 'E')),           
    
   TMPARA_TESO.TI_CAMB, TMPARA_TESO.TI_ORIG, 'S', TMPARA_TESO.CO_MONE_DEFA, TMPARA_TESO.CO_MONE_EXTR, ISNULL(      
      
(Dbo.FN_TCFACT_CAMB_MENS_Q01 (@ISCO_EMPR, TMCNTA_BANC.CO_MONE, @ISCO_MONE, YEAR(TCMOVI_BANC.FE_OPER), 
MONTH(TCMOVI_BANC.FE_OPER))),TCMOVI_BANC.FA_TIPO_CAMB)), 2) IM_MOVI              
    From  TCMOVI_BANC , TMCNTA_BANC, TMPARA_TESO, TTSUBR_FINA, TTRUBR_FINA, TTARUB_FINA              
    Where  TCMOVI_BANC.CO_EMPR = @ISCO_EMPR              
    And  TCMOVI_BANC.FE_OPER < @VDFE_INIC_NUEV              
    And  TCMOVI_BANC.TI_SITU IN ('ACT', 'EXT')              
    And  Rtrim(Isnull(TCMOVI_BANC.CO_SUBR, '')) != ''              
    And  TCMOVI_BANC.CO_EMPR = TMCNTA_BANC.CO_EMPR              
    And  TCMOVI_BANC.CO_BANC = TMCNTA_BANC.CO_BANC              
    And  TCMOVI_BANC.NU_CNTA_BANC = TMCNTA_BANC.NU_CNTA_BANC              
    And  TCMOVI_BANC.CO_EMPR = TMPARA_TESO.CO_EMPR        
    AND TTSUBR_FINA.ST_REPO = 'S'       
  AND TCMOVI_BANC.CO_EMPR = TTSUBR_FINA.CO_EMPR                                  
  AND TCMOVI_BANC.CO_SUBR = TTSUBR_FINA.CO_SUBR                                  
  AND TTSUBR_FINA.CO_EMPR = TTRUBR_FINA.CO_EMPR                                  
  AND  TTSUBR_FINA.CO_ARUB = TTRUBR_FINA.CO_ARUB                                  
  AND  TTSUBR_FINA.CO_RUBR = TTRUBR_FINA.CO_RUBR                                  
  AND TTRUBR_FINA.CO_EMPR = TTARUB_FINA.CO_EMPR                                  
  AND TTRUBR_FINA.CO_ARUB = TTARUB_FINA.CO_ARUB) T1)              
 +              
   (Select Isnull(Sum( Isnull(T1.IM_MOVI, 0)), 0)              
   From (Select Round( Dbo.FN_TCFACT_CAMB_Q02(TMCAJA.CO_MONE, @ISCO_MONE, TCMOVI_CAJA.FE_OPER,               
   TCMOVI_CAJA.IM_MOVI * ( PATINDEX(TCMOVI_CAJA.TI_MOVI, 'I') - PATINDEX(TCMOVI_CAJA.TI_MOVI, 'E')),               
   TMPARA_TESO.TI_CAMB, TMPARA_TESO.TI_ORIG, 'S', TMPARA_TESO.CO_MONE_DEFA, TMPARA_TESO.CO_MONE_EXTR, ISNULL(      
(Dbo.FN_TCFACT_CAMB_MENS_Q01 (@ISCO_EMPR,TMCAJA.CO_MONE, @ISCO_MONE, YEAR(TCMOVI_CAJA.FE_OPER), 
MONTH(TCMOVI_CAJA.FE_OPER))),TCMOVI_CAJA.FA_TIPO_CAMB)        
), 2) IM_MOVI              
    From  TCMOVI_CAJA , TMCAJA, TMPARA_TESO, TTSUBR_FINA, TTRUBR_FINA, TTARUB_FINA               
    Where  TCMOVI_CAJA.CO_EMPR = @ISCO_EMPR              
    And  TCMOVI_CAJA.FE_OPER < @VDFE_INIC_NUEV              
    And TCMOVI_CAJA.TI_SITU IN ('ACT', 'EXT')              
    And  Rtrim(Isnull(TCMOVI_CAJA.CO_SUBR, '')) != ''              
    And  TCMOVI_CAJA.CO_EMPR = TMCAJA.CO_EMPR              
    And  TCMOVI_CAJA.CO_CAJA = TMCAJA.CO_CAJA              
    And  TCMOVI_CAJA.CO_EMPR = TMPARA_TESO.CO_EMPR        
 AND TTSUBR_FINA.ST_REPO = 'S'                                        
  AND TCMOVI_CAJA.CO_EMPR = TTSUBR_FINA.CO_EMPR                                  
  AND TCMOVI_CAJA.CO_SUBR = TTSUBR_FINA.CO_SUBR                                  
  AND TTSUBR_FINA.CO_EMPR = TTRUBR_FINA.CO_EMPR                                  
  AND  TTSUBR_FINA.CO_ARUB = TTRUBR_FINA.CO_ARUB                                  
  AND  TTSUBR_FINA.CO_RUBR = TTRUBR_FINA.CO_RUBR                                  
  AND TTRUBR_FINA.CO_EMPR = TTARUB_FINA.CO_EMPR                                  
AND TTRUBR_FINA.CO_ARUB = TTARUB_FINA.CO_ARUB) T1)                        
                         
                       
 /*                               
   INSERT INTO #TWFLUJ_CAJA_SEMA_Q05_1                                     
   (CO_EMPR, IM_SALD_INIC, TI_DETA_EMPR, TI_DETA_BANC)                                  
    VALUES (@ISCO_EMPR, @VNIM_SALD_FLUJ, '1', '2')                      
*/                        
                      
                      
/*FIN DE SALDOS INICIALES*/                      
IF @VNNU_CONT_SEMA > 20                      
BEGIN                                       
    -- SELECT @VNNU_PARC_SEMA = @VNNU_CONT_SEMA - 19                      
     SELECT @VNNU_SEMA_NUEV = @VNNU_CONT_SEMA - 20                      
END                      
ELSE                      
 BEGIN                      
 SELECT @VNNU_SEMA_NUEV = 1                      
END    
                      
--SELECT 'PRUEBA FINAL', @VNNU_SEMA_NUEV                      
                      
SELECT @VSDE_CAMP_0001 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV)))                         
SELECT @VSDE_CAMP_0002 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+1))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+1)))                      
SELECT @VSDE_CAMP_0003 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+2))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+2)))                      
SELECT @VSDE_CAMP_0004 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+3))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+3)))                      
SELECT @VSDE_CAMP_0005 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+4))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+4)))                      
SELECT @VSDE_CAMP_0006 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+5))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+5)))                      
SELECT @VSDE_CAMP_0007 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+6))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+6)))                      
SELECT @VSDE_CAMP_0008 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+7))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+7)))                      
SELECT @VSDE_CAMP_0009 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+8))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+8)))                      
SELECT @VSDE_CAMP_0010 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+9))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+9)))                      
SELECT @VSDE_CAMP_0011 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+10))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+10)))                      
SELECT @VSDE_CAMP_0012 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+11))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+11)))                      
SELECT @VSDE_CAMP_0013 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+12))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+12)))                      
SELECT @VSDE_CAMP_0014 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+13))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+13)))               
SELECT @VSDE_CAMP_0015 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+14))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+14)))                      
SELECT @VSDE_CAMP_0016 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+15))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+15)))                      
SELECT @VSDE_CAMP_0017 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+16))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+16)))                      
SELECT @VSDE_CAMP_0018 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+17))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+17)))                      
SELECT @VSDE_CAMP_0019 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+18))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+18)))                      
SELECT @VSDE_CAMP_0020 = 'T1.IM_SE' + REPLICATE('0', 2-LEN(RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+19))))) + 
RTRIM(LTRIM(STR(@VNNU_SEMA_NUEV+19)))                      
                      
                      
                      
EXECUTE ('                      
SELECT T1.CO_EMPR, MAX(T2.DE_NOMB), ISNULL(' + @VNIM_SALD_FLUJ + ',0)* ' + @VNNU_FACT + ',                                
  T1.CO_ARUB, MAX(T1.DE_ARUB),                                     
  T1.CO_RUBR, MAX(T1.DE_RUBR), T1.CO_SUBR, MAX(T1.DE_SUBR),                                    
  SUM(ISNULL(' + @VSDE_CAMP_0001 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0002 + ',0))* ' + @VNNU_FACT + 
',                                     
  SUM(ISNULL(' + @VSDE_CAMP_0003 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0004 + ',0))* ' + @VNNU_FACT + 
',                                     
  SUM(ISNULL(' + @VSDE_CAMP_0005 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0006 + ',0))* ' + @VNNU_FACT + 
',                                    
  SUM(ISNULL(' + @VSDE_CAMP_0007 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0008 + ',0))* ' + @VNNU_FACT + 
',                                     
  SUM(ISNULL(' + @VSDE_CAMP_0009 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0010 + ',0))* ' + @VNNU_FACT + 
',                                     
  SUM(ISNULL(' + @VSDE_CAMP_0011 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0012 + ',0))* ' + @VNNU_FACT + 
',                         
  SUM(ISNULL(' + @VSDE_CAMP_0013 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0014 + ',0))* ' + @VNNU_FACT + 
',                                     
  SUM(ISNULL(' + @VSDE_CAMP_0015 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0016 + ',0))* ' + @VNNU_FACT + 
',                                    
  SUM(ISNULL(' + @VSDE_CAMP_0017 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0018 + ',0))* ' + @VNNU_FACT + 
',                              
  SUM(ISNULL(' + @VSDE_CAMP_0019 + ',0))* ' + @VNNU_FACT + ', SUM(ISNULL(' + @VSDE_CAMP_0020 + ',0))* ' + @VNNU_FACT + 
',                                
  T1.CO_BANC, T1.NU_CNTA_BANC, MAX(T1.DE_CNTA_BANC), MAX(T1.TI_DETA_EMPR), MAX(T1.TI_DETA_BANC)                               
     
FROM #TWFLUJ_CAJA_SEMA_Q05_1    T1, TMEMPR T2                                    
WHERE T1.CO_EMPR = T2.CO_EMPR                                             
GROUP BY T1.CO_EMPR, T1.CO_ARUB, T1.CO_RUBR, T1.CO_SUBR, T1.CO_BANC, T1.NU_CNTA_BANC                           
ORDER By T1.CO_EMPR, MAX(T1.TI_DETA_EMPR), MAX(T1.TI_DETA_BANC), T1.CO_ARUB, T1.CO_RUBR, T1.CO_SUBR                           
  
')                      
RETURN                                      
/********************************* FIN ***********************************/


GO
